package com.wbw.csnd_hd.common;

import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;

/**
 * 用来表示返回的结果对象
 */
@Data
public class ResultCommon<T> implements Serializable {
    //用来表面请求是否成功的状态码
    private int code;
    //提示信息
    private String msg;
    //返回结果携带的数据
    private T data;

    public ResultCommon(ResultEnum resultEnum) {
        this.code = resultEnum.getCode();
        this.msg = resultEnum.getMsg();
    }
    public ResultCommon(ResultEnum resultEnum,T data) {
        this(resultEnum);
        this.data=data;
    }


    //请求成功的方法
    public static <T> ResultCommon<T> success(){
        return new ResultCommon<T>(ResultEnum.SUCCESS);
    }

    //请求成功且携带数据的方法
    public static <T> ResultCommon<T> success(T data){
        return new ResultCommon<T>(ResultEnum.SUCCESS,data);
    }

    //请求失败的方法
    public static <T> ResultCommon<T> fail(){
        return new ResultCommon<T>(ResultEnum.FAIL);
    }

    //请求失败，且指定失败原因
    public static <T> ResultCommon<T> fail(ResultEnum resultEnum){
        return new ResultCommon<T>(resultEnum);
    }

    //判断请求是否成功
    public boolean isSuccess(){
        return this.code==ResultEnum.SUCCESS.getCode();
    }


}
